package com.cloudbroker.bcs.platform.dav.bizapi.t2service.business;

import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.platform.dav.bizapi.constants.IFSFunctionIdsNew.IFSDavCustomerFuncIds;
import com.cloudbroker.bcs.platform.dav.bizapi.service.base.vo.HSBCPSVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.base.vo.PageVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.BrokerAccountListBackForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.BrokerRegFormBackForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.CustomerIdFormBackForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.ImgVerifyFormBackForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.LoginFormBackForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.NewsQueryFormBackForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.NewsSaveFormBackForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.OnlinenumFormBackForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.QueryAccountListFormBackForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.RegisterOrLoginBackForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.RegisternumFormBackForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.SendSMSBackForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.WhiteAccountListFormBackForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.WhiteListBackForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.vo.*;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.vo.BrokerInfoForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.vo.NewsQueryForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.vo.NewsSaveForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.vo.NoticeInfoForm;
import com.hundsun.jresplus.remoting.impl.annotation.Service;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceModule;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceParam;

@ServiceModule
public interface UserManagerT2BizService {
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_ACCOUNT_LOGIN, desc = "用户登陆")
    public LoginFormBackForm funcAccountLogin(@ServiceParam("param") LoginForm param);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_BROKER_REGISTER_CHECK, desc = "大V注册页面进入校验")
    public BrokerRegFormBackForm funcBrokerRegisterCheck(@ServiceParam("param") BrokerRegCheckForm form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_BROKER_REGISTER, desc = "大V注册")
    public LoginFormBackForm funcBrokerRegister(@ServiceParam("param") BrokerRegForm form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_ACCOUNT_LOGOUT, desc = "用户登出")
    public HSBCPSBackVO funcAccountLogout(@ServiceParam("param") HSBCPSVO form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_CHATROOM_ONLINENUM_BY_BROKER, desc = "获取当前聊天室在线人数")
    public OnlinenumFormBackForm funcChatRoomOnlineNumByBroker(@ServiceParam("param") HSBCPSVO param);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_ACCOUNT_REGISTERNUM, desc = "注册用户总数")
    public RegisternumFormBackForm funcAccountRegisternum(@ServiceParam("param") HSBCPSVO param);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_NEWS_SAVE, desc = "资讯信息保存")
    public NewsSaveFormBackForm funcNewsSave(@ServiceParam("param") NewsSaveForm param);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_NEWS_QRY, desc = "资讯信息查询")
    public NewsQueryFormBackForm funcNewsQry(@ServiceParam("param") NewsQueryForm param);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_ACCOUNT_LIST, desc = "用户列表")
    public QueryAccountListFormBackForm funcAccountList(@ServiceParam("param") QueryAccountListForm param);

    @Service(functionId = IFSDavCustomerFuncIds.FUNC_WHITE_LIST, desc = "白名单列表")
    public WhiteAccountListFormBackForm funcWhiteList(@ServiceParam("param") PageVO param);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_ACCOUNT_DETAIL, desc = "用户详细信息")
    public CustomerIdFormBackForm funcAccountDetail(@ServiceParam("param") CustomerIdForm param);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_BROKER_NOTICE_SAVE, desc = "消息推送")
    public HSBCPSBackVO funcBrokerNoticeSave(@ServiceParam("param") NoticeInfoForm param);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_ACCOUNT_SENDSMS, desc = "发送验证短信")
    public SendSMSBackForm funcAccountSendsms(@ServiceParam("param") SendSMSForm param);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_ACCOUNT_CHANGE_PASSWORD, desc = "用户密码修改")
    public HSBCPSBackVO funcAccountChangePassword(@ServiceParam("param") ChangePasswordForm param);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_ACCOUNT_RESET_PASSWORD, desc = "用户重置密码")
    public HSBCPSBackVO funcAccountResetPassword(@ServiceParam("param") ResetPasswordForm param);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_ACCOUNT_IMGVERIFY, desc = "获取图片验证码")
    public ImgVerifyFormBackForm funcAccountImgverify(@ServiceParam("param") ImgVerifyForm param);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_BROKER_INFO_UPDATE, desc = "大V个人信息修改")
    public HSBCPSBackVO funcBrokerInfoUpdate(@ServiceParam("param") BrokerInfoForm param);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_BROKER_ACCOUNT_LIST, desc = "运营端大V列表")
    public BrokerAccountListBackForm funcBrokerAccountList(@ServiceParam("param") QueryAccountListForm param);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_BROKER_INFO, desc = "运营端大V详细信息")
    public BrokerAccountInfoForm funcBrokerInfo(@ServiceParam("param") FollowBrokerForm param);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_BROKER_CHANGE_STATUS, desc = "运营端大V更改状态")
    public HSBCPSBackVO funcBrokerChangeStatus(@ServiceParam("param") BrokerStatusChangeForm param);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_WHITELIST_IMPORT, desc = "白名单导入")
    public HSBCPSBackVO funcWhitelistImport(WhiteListFormData form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_WHITELIST_OUTPUT, desc = "白名单导出")
    public WhiteListBackForm funcWhitelistOutput(HSBCPSVO form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_OPERATOR_WHITE_LIST, desc = "添加白名单/取消白名单")
    public HSBCPSBackVO funcOperatorWhiteList(OperatorWhiteListForm form);

    @Service(functionId = IFSDavCustomerFuncIds.FUNC_PACH_SEND_SMS, desc = "批量发送验证短信")
    public HSBCPSBackVO funcPachSendSms(PachSendSMSForm form);    
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_WEBSITE_REGISTER, desc = "官网注册")
    public LoginFormBackForm funcWebsiteRegister(WebsiteRegForm form);

    @Service(functionId = IFSDavCustomerFuncIds.FUNC_GET_TENANT, desc = "获取租户ID")
    public TenantForm funcGetTenant(HSBCPSVO form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_REGISTER_OR_LOGIN, desc = "投顾注册或登录")
    public RegisterOrLoginBackForm funcRegisterOrLogin(RegisterOrLoginForm form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_BROKER_DETAIL_UPDATE, desc = "投顾完善信息")
    public HSBCPSBackVO funcBrokerDetailUpdate(BrokerDetailForm form);
}
